package listasGenericas;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

/**
 * Clase que maneja la lista generica de puestos de trabajo
 */
@ManagedBean
@ViewScoped
public class PuestosTrabajos implements Serializable {

    private Map<Integer, Map<String, Integer>> puestosData = new HashMap<Integer, Map<String, Integer>>();
    private Map<String, Integer> puestos = new HashMap<String, Integer>();

    public PuestosTrabajos() {
        Map<String, Integer> mozoPuestos = new HashMap<String, Integer>();
        mozoPuestos.put("Oficial", 1);
        mozoPuestos.put("Auxiliar", 2);
        mozoPuestos.put("Suplente", 3);

        Map<String, Integer> maitrePuestos = new HashMap<String, Integer>();
        maitrePuestos.put("Oficial", 1);
        maitrePuestos.put("Auxiliar", 2);
        maitrePuestos.put("Suplente", 3);

        Map<String, Integer> cajaPuestos = new HashMap<String, Integer>();
        cajaPuestos.put("Oficial", 1);
        cajaPuestos.put("Auxiliar", 2);
        cajaPuestos.put("Suplente", 3);

        Map<String, Integer> choferPuestos = new HashMap<String, Integer>();
        choferPuestos.put("Oficial", 1);
        choferPuestos.put("Suplente", 2);

        puestosData.put(1, cajaPuestos);
        puestosData.put(2, choferPuestos);
        puestosData.put(4, maitrePuestos);
        puestosData.put(5, mozoPuestos);
    }

    public Map<Integer, Map<String, Integer>> getPuestosData() {
        return puestosData;
    }

    public void setPuestosData(Map<Integer, Map<String, Integer>> puestosData) {
        this.puestosData = puestosData;
    }

    public Map<String, Integer> getPuestos() {
        return puestos;
    }

    public void setPuestos(Map<String, Integer> puestos) {
        this.puestos = puestos;
    }

    public Map<String, Integer> devolverPuestos(Integer id) {
        return puestosData.get(id);
    }

    public String devolverPuestoPorId(int rol, int puesto) {
        String resutado = "";
        if (rol != 6) {
            Map<String, Integer> p = new HashMap<String, Integer>();
            p = this.devolverPuestos(rol);
            if (p != null) {
                for (Entry<String, Integer> e : p.entrySet()) {
                    if (e.getValue() == puesto) {
                        return e.getKey();
                    } else {
                        resutado = "Sin definir";
                    }
                }
            }
        } else {
            resutado = "No tiene";
        }
        return resutado;
    }
}
